c programs explanation